import prettier from 'prettier';
import { Schema } from './schema.js';
import { schemaNameHandler } from './utils.js';

const schemaJson = {
    'AssigneePost': {
        'title': 'AssigneePost',
        'required': ['code'],
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': '岗位code'
            },
            'departmentFormCode': {
                'type': 'string',
                'description': '部门表单code'
            },
            'initiateDepartmentFlag': {
                'type': 'boolean',
                'description': '发起部门标志',
                'example': false
            }
        }
    },
    'AssigneePostDetail': {
        'title': 'AssigneePostDetail',
        'type': 'object',
        'properties': {
            'departmentFormCode': {
                'type': 'string',
                'description': '部门表单code'
            },
            'initiateDepartmentFlag': {
                'type': 'boolean',
                'description': '发起部门标志',
                'example': false
            },
            'post': {
                'description': '岗位',
                '$ref': '#/components/schemas/PostAggregation'
            }
        }
    },
    'CategoryAuthBusinessManModel': {
        'title': 'CategoryAuthBusinessManModel',
        'type': 'object',
        'properties': {
            'definitionAuths': {
                'type': 'array',
                'description': '流程权限',
                'items': {
                    '$ref': '#/components/schemas/DefinitionAuthBusinessAddModel'
                }
            },
            'departments': {
                'uniqueItems': true,
                'type': 'array',
                'description': '部门',
                'items': {
                    'type': 'integer',
                    'format': 'int64'
                }
            },
            'name': {
                'maxLength': 256,
                'minLength': 0,
                'type': 'string'
            },
            'posts': {
                'uniqueItems': true,
                'type': 'array',
                'description': '岗位',
                'items': {
                    'type': 'string'
                }
            },
            'users': {
                'uniqueItems': true,
                'type': 'array',
                'description': '用户',
                'items': {
                    'type': 'integer',
                    'format': 'int64'
                }
            }
        }
    },
    'CategoryAuthGroupBusinessDetailModel': {
        'title': 'CategoryAuthGroupBusinessDetailModel',
        'type': 'object',
        'properties': {
            'definitions': {
                'type': 'array',
                'description': '流程权限',
                'items': {
                    '$ref': '#/components/schemas/DefinitionAuthModel'
                }
            },
            'departments': {
                'type': 'array',
                'description': '部门',
                'items': {
                    '$ref': '#/components/schemas/DepartmentAggregation'
                }
            },
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'posts': {
                'type': 'array',
                'description': '岗位',
                'items': {
                    '$ref': '#/components/schemas/PostAggregation'
                }
            },
            'users': {
                'type': 'array',
                'description': '用户',
                'items': {
                    '$ref': '#/components/schemas/UserAggregation'
                }
            }
        }
    },
    'CategoryAuthGroupBusinessListModel': {
        'title': 'CategoryAuthGroupBusinessListModel',
        'type': 'object',
        'properties': {
            'departments': {
                'type': 'array',
                'description': '部门',
                'items': {
                    '$ref': '#/components/schemas/DepartmentAggregation'
                }
            },
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'posts': {
                'type': 'array',
                'description': '岗位',
                'items': {
                    '$ref': '#/components/schemas/PostAggregation'
                }
            },
            'users': {
                'type': 'array',
                'description': '用户',
                'items': {
                    '$ref': '#/components/schemas/UserAggregation'
                }
            }
        }
    },
    'CategoryAuthGroupModel': {
        'title': 'CategoryAuthGroupModel',
        'type': 'object',
        'properties': {
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            }
        }
    },
    'CategoryBusinessAddModel': {
        'title': 'CategoryBusinessAddModel',
        'required': ['enableFlag', 'name'],
        'type': 'object',
        'properties': {
            'enableFlag': {
                'type': 'boolean',
                'description': '启用标志',
                'example': false
            },
            'name': {
                'maxLength': 256,
                'minLength': 1,
                'type': 'string',
                'description': '名称'
            },
            'parentId': {
                'type': 'integer',
                'description': '上级id',
                'format': 'int64'
            }
        }
    },
    'CategoryBusinessListModel': {
        'title': 'CategoryBusinessListModel',
        'type': 'object',
        'properties': {
            'enableFlag': {
                'type': 'boolean',
                'description': '启用标志',
                'example': false
            },
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'parentId': {
                'type': 'integer',
                'description': '上级id',
                'format': 'int64'
            }
        }
    },
    'CategoryBusinessPageModel': {
        'title': 'CategoryBusinessPageModel',
        'type': 'object',
        'properties': {
            'enableFlag': {
                'type': 'boolean',
                'description': '启用标志',
                'example': false
            },
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'parent': {
                'description': '上级',
                '$ref': '#/components/schemas/CategoryModel'
            }
        }
    },
    'CategoryModel': {
        'title': 'CategoryModel',
        'type': 'object',
        'properties': {
            'enableFlag': {
                'type': 'boolean',
                'description': '启用标志',
                'example': false
            },
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            }
        }
    },
    'DefineItem': {
        'title': 'DefineItem',
        'type': 'object',
        'properties': {
            'arrayFlag': {
                'type': 'boolean'
            },
            'code': {
                'type': 'string'
            },
            'name': {
                'type': 'string'
            },
            'type': {
                'type': 'string'
            }
        }
    },
    'DefineRestrict': {
        'title': 'DefineRestrict',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string'
            },
            'displayable': {
                'type': 'boolean'
            },
            'readable': {
                'type': 'boolean'
            },
            'require': {
                'type': 'boolean'
            },
            'stage': {
                'type': 'string'
            },
            'writable': {
                'type': 'boolean'
            }
        }
    },
    'DefinitionAuthBusinessAddModel': {
        'title': 'DefinitionAuthBusinessAddModel',
        'required': ['createFlag', 'dataAuthType', 'definitionId', 'deleteFlag', 'editFlag', 'exportFlag', 'importFlag'],
        'type': 'object',
        'properties': {
            'createFlag': {
                'type': 'boolean',
                'description': '新增',
                'example': false
            },
            'dataAuthType': {
                'type': 'string',
                'description': '数据权限[DataAuthType]',
                'enum': ['ALL/** null */', 'PERSONAL/** null */']
            },
            'definitionId': {
                'type': 'integer',
                'description': '流程id',
                'format': 'int64'
            },
            'deleteFlag': {
                'type': 'boolean',
                'description': '删除',
                'example': false
            },
            'editFlag': {
                'type': 'boolean',
                'description': '编辑',
                'example': false
            },
            'exportFlag': {
                'type': 'boolean',
                'description': '导出',
                'example': false
            },
            'importFlag': {
                'type': 'boolean',
                'description': '导入',
                'example': false
            }
        }
    },
    'DefinitionAuthBusinessCommonModel': {
        'title': 'DefinitionAuthBusinessCommonModel',
        'type': 'object',
        'properties': {
            'createFlag': {
                'type': 'boolean',
                'description': '新增',
                'example': false
            },
            'deleteFlag': {
                'type': 'boolean',
                'description': '删除',
                'example': false
            },
            'editFlag': {
                'type': 'boolean',
                'description': '编辑',
                'example': false
            },
            'exportFlag': {
                'type': 'boolean',
                'description': '导出',
                'example': false
            },
            'importFlag': {
                'type': 'boolean',
                'description': '导入',
                'example': false
            }
        }
    },
    'DefinitionAuthModel': {
        'title': 'DefinitionAuthModel',
        'type': 'object',
        'properties': {
            'createFlag': {
                'type': 'boolean',
                'description': '新增',
                'example': false
            },
            'dataAuthType': {
                'description': '数据权限',
                '$ref': '#/components/schemas/EnumWrapper«string»'
            },
            'definitionId': {
                'type': 'integer',
                'description': '流程id',
                'format': 'int64'
            },
            'deleteFlag': {
                'type': 'boolean',
                'description': '删除',
                'example': false
            },
            'editFlag': {
                'type': 'boolean',
                'description': '编辑',
                'example': false
            },
            'exportFlag': {
                'type': 'boolean',
                'description': '导出',
                'example': false
            },
            'importFlag': {
                'type': 'boolean',
                'description': '导入',
                'example': false
            }
        }
    },
    'DefinitionBusinessAddModel': {
        'title': 'DefinitionBusinessAddModel',
        'required': ['active', 'categoryId', 'code', 'dgrm', 'name', 'process', 'remark'],
        'type': 'object',
        'properties': {
            'active': {
                'type': 'boolean',
                'description': '是否激活',
                'example': false
            },
            'assignees': {
                'type': 'array',
                'description': '审批人',
                'items': {
                    '$ref': '#/components/schemas/TaskAssigneeBusinessManModel'
                }
            },
            'categoryId': {
                'type': 'integer',
                'description': '类别id',
                'format': 'int64'
            },
            'code': {
                'maxLength': 256,
                'minLength': 0,
                'type': 'string',
                'description': 'code'
            },
            'dgrm': {
                'type': 'string',
                'description': 'svg'
            },
            'form': {
                'description': '表单定义',
                '$ref': '#/components/schemas/FormBusinessManModel'
            },
            'name': {
                'maxLength': 256,
                'minLength': 0,
                'type': 'string',
                'description': '名称'
            },
            'process': {
                'type': 'string',
                'description': '流程xml'
            },
            'remark': {
                'type': 'string',
                'description': '备注'
            },
            'templates': {
                'description': '数据展示模板',
                '$ref': '#/components/schemas/ViewerTemplatesBusinessManModel'
            }
        }
    },
    'DefinitionBusinessCommonDetailModel': {
        'title': 'DefinitionBusinessCommonDetailModel',
        'type': 'object',
        'properties': {
            'category': {
                'description': '类别',
                '$ref': '#/components/schemas/CategoryModel'
            },
            'code': {
                'type': 'string',
                'description': '编号'
            },
            'draftFlag': {
                'type': 'boolean',
                'description': '未发布的草稿标志',
                'example': false
            },
            'formDefinition': {
                'description': '表单定义',
                '$ref': '#/components/schemas/FormDefinitionAggregation'
            },
            'id': {
                'type': 'integer',
                'description': '流程定义id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '流程名称'
            },
            'releaseFlag': {
                'type': 'boolean',
                'description': '发布标志',
                'example': false
            }
        }
    },
    'DefinitionBusinessCommonListModel': {
        'title': 'DefinitionBusinessCommonListModel',
        'type': 'object',
        'properties': {
            'category': {
                'description': '类别',
                '$ref': '#/components/schemas/CategoryModel'
            },
            'code': {
                'type': 'string',
                'description': '编号'
            },
            'draftFlag': {
                'type': 'boolean',
                'description': '未发布的草稿标志',
                'example': false
            },
            'id': {
                'type': 'integer',
                'description': '流程定义id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '流程名称'
            },
            'releaseFlag': {
                'type': 'boolean',
                'description': '发布标志',
                'example': false
            }
        }
    },
    'DefinitionBusinessDetailModel': {
        'title': 'DefinitionBusinessDetailModel',
        'type': 'object',
        'properties': {
            'assignees': {
                'type': 'array',
                'description': '审批人',
                'items': {
                    '$ref': '#/components/schemas/TaskAssigneeDetailModel'
                }
            },
            'businessType': {
                'type': 'string',
                'description': '业务类型'
            },
            'category': {
                'description': '类别',
                '$ref': '#/components/schemas/CategoryModel'
            },
            'code': {
                'type': 'string',
                'description': '编号'
            },
            'draftFlag': {
                'type': 'boolean',
                'description': '未发布的草稿标志',
                'example': false
            },
            'formDefinition': {
                'description': '表单定义',
                '$ref': '#/components/schemas/FormDefinitionAggregation'
            },
            'id': {
                'type': 'integer',
                'description': '流程定义id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '流程名称'
            },
            'process': {
                'type': 'string',
                'description': '流程xml'
            },
            'releaseFlag': {
                'type': 'boolean',
                'description': '发布标志',
                'example': false
            },
            'remark': {
                'type': 'string',
                'description': '备注'
            },
            'svg': {
                'type': 'string',
                'description': 'svg'
            }
        }
    },
    'DefinitionBusinessListModel': {
        'title': 'DefinitionBusinessListModel',
        'type': 'object',
        'properties': {
            'category': {
                'description': '类别',
                '$ref': '#/components/schemas/CategoryModel'
            },
            'code': {
                'type': 'string',
                'description': '编号'
            },
            'draftFlag': {
                'type': 'boolean',
                'description': '未发布的草稿标志',
                'example': false
            },
            'id': {
                'type': 'integer',
                'description': '流程定义id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '流程名称'
            },
            'releaseFlag': {
                'type': 'boolean',
                'description': '发布标志',
                'example': false
            }
        }
    },
    'DefinitionBusinessModifyModel': {
        'title': 'DefinitionBusinessModifyModel',
        'required': ['active', 'categoryId', 'dgrm', 'name', 'process', 'remark'],
        'type': 'object',
        'properties': {
            'active': {
                'type': 'boolean',
                'description': '是否激活',
                'example': false
            },
            'assignees': {
                'type': 'array',
                'description': '审批人',
                'items': {
                    '$ref': '#/components/schemas/TaskAssigneeBusinessManModel'
                }
            },
            'categoryId': {
                'type': 'integer',
                'description': '类别id',
                'format': 'int64'
            },
            'dgrm': {
                'type': 'string',
                'description': 'svg'
            },
            'form': {
                'description': '表单定义',
                '$ref': '#/components/schemas/FormBusinessManModel'
            },
            'name': {
                'maxLength': 256,
                'minLength': 0,
                'type': 'string',
                'description': '名称'
            },
            'process': {
                'type': 'string',
                'description': '流程xml'
            },
            'remark': {
                'type': 'string',
                'description': '备注'
            },
            'templates': {
                'description': '数据展示模板',
                '$ref': '#/components/schemas/ViewerTemplatesBusinessManModel'
            }
        }
    },
    'DefinitionBusinessPageModel': {
        'title': 'DefinitionBusinessPageModel',
        'type': 'object',
        'properties': {
            'category': {
                'description': '类别',
                '$ref': '#/components/schemas/CategoryModel'
            },
            'code': {
                'type': 'string',
                'description': '编号'
            },
            'draftFlag': {
                'type': 'boolean',
                'description': '未发布的草稿标志',
                'example': false
            },
            'id': {
                'type': 'integer',
                'description': '流程定义id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '流程名称'
            },
            'releaseFlag': {
                'type': 'boolean',
                'description': '发布标志',
                'example': false
            }
        }
    },
    'DefinitionModel': {
        'title': 'DefinitionModel',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': '编号'
            },
            'draftFlag': {
                'type': 'boolean',
                'description': '未发布的草稿标志',
                'example': false
            },
            'id': {
                'type': 'integer',
                'description': '流程定义id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '流程名称'
            },
            'releaseFlag': {
                'type': 'boolean',
                'description': '发布标志',
                'example': false
            }
        }
    },
    'DefinitionSvgAggregation': {
        'title': 'DefinitionSvgAggregation',
        'type': 'object',
        'properties': {
            'id': {
                'type': 'string',
                'description': 'id'
            },
            'svg': {
                'type': 'string',
                'description': '图'
            }
        }
    },
    'DefinitionTreeCommonModel': {
        'title': 'DefinitionTreeCommonModel',
        'type': 'object',
        'properties': {
            'children': {
                'type': 'array',
                'description': '下级',
                'items': {
                    '$ref': '#/components/schemas/DefinitionTreeCommonModel'
                }
            },
            'definitionId': {
                'type': 'integer',
                'description': '流程定义id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'processFlag': {
                'type': 'boolean',
                'description': '流程标志',
                'example': false
            }
        }
    },
    'DefinitionVisibleModifyBusinessModel': {
        'title': 'DefinitionVisibleModifyBusinessModel',
        'required': ['enableFlag'],
        'type': 'object',
        'properties': {
            'enableFlag': {
                'type': 'boolean',
                'description': '可用标志',
                'example': false
            }
        }
    },
    'DepartmentAggregation': {
        'title': 'DepartmentAggregation',
        'type': 'object',
        'properties': {
            'fullNames': {
                'type': 'array',
                'description': '部门全称',
                'items': {
                    'type': 'string'
                }
            },
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            }
        }
    },
    'EnumWrapper«string»': {
        'title': 'EnumWrapper«string»',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': 'code[TaskState]',
                'readOnly': true,
                'enum': ['ACTIVE/** 待处理 */', 'CANCEL/** 取消 */', 'COMPLETE/** 完成 */', 'OVERRULE/** 驳回 */', 'REJECT/** 拒绝 */', 'TURN/** 被转办 */', 'WITHDRAW/** 被撤回 */']
            },
            'description': {
                'type': 'string',
                'description': '描述'
            }
        }
    },
    'FormBusinessManModel': {
        'title': 'FormBusinessManModel',
        'required': ['appLayout', 'items', 'layout', 'restricts'],
        'type': 'object',
        'properties': {
            'appLayout': {
                'type': 'object',
                'description': 'App布局'
            },
            'items': {
                'type': 'array',
                'description': '项',
                'items': {
                    '$ref': '#/components/schemas/FormDefineItem'
                }
            },
            'layout': {
                'type': 'object',
                'description': '布局'
            },
            'restricts': {
                'type': 'array',
                'description': '限制',
                'items': {
                    '$ref': '#/components/schemas/FormDefineRestrict'
                }
            }
        }
    },
    'FormDataAggregation': {
        'title': 'FormDataAggregation',
        'type': 'object',
        'properties': {
            'id': {
                'type': 'string',
                'description': 'id'
            },
            'items': {
                'type': 'array',
                'description': '项目',
                'items': {
                    '$ref': '#/components/schemas/FormDataAggregationItem'
                }
            }
        }
    },
    'FormDataAggregationItem': {
        'title': 'FormDataAggregationItem',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': 'code'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'type': {
                'type': 'string',
                'description': '类型'
            },
            'values': {
                'type': 'array',
                'description': '值',
                'items': {
                    '$ref': '#/components/schemas/FormDataAggregationValue'
                }
            }
        }
    },
    'FormDataAggregationValue': {
        'title': 'FormDataAggregationValue',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': 'code'
            },
            'dict': {
                'type': 'string',
                'description': '字典code'
            },
            'fullNames': {
                'type': 'array',
                'description': '部门全称',
                'items': {
                    'type': 'string'
                }
            },
            'id': {
                'type': 'string',
                'description': '用户id/部门id/文件id'
            },
            'largeFlag': {
                'type': 'boolean',
                'description': '大文件',
                'example': false
            },
            'name': {
                'type': 'string',
                'description': '姓名/部门名称/文件名/字典项名称'
            },
            'signUrl': {
                'type': 'string',
                'description': '签名路径'
            },
            'value': {
                'type': 'object',
                'description': '值'
            }
        }
    },
    'FormDataAggregationWithUser': {
        'title': 'FormDataAggregationWithUser',
        'type': 'object',
        'properties': {
            'id': {
                'type': 'string',
                'description': 'id'
            },
            'items': {
                'type': 'array',
                'description': '项目',
                'items': {
                    '$ref': '#/components/schemas/FormDataAggregationItem'
                }
            }
        }
    },
    'FormDataDetailAggregation': {
        'title': 'FormDataDetailAggregation',
        'type': 'object',
        'properties': {
            'data': {
                'type': 'object',
                'description': '数据'
            },
            'id': {
                'type': 'string',
                'description': 'id'
            }
        }
    },
    'FormDefineItem': {
        'title': 'FormDefineItem',
        'required': ['arrayFlag', 'code', 'name', 'type'],
        'type': 'object',
        'properties': {
            'arrayFlag': {
                'type': 'boolean',
                'description': '是否是数组',
                'example': false
            },
            'code': {
                'type': 'string',
                'description': 'code'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'type': {
                'type': 'string',
                'description': '类型'
            }
        }
    },
    'FormDefineRestrict': {
        'title': 'FormDefineRestrict',
        'required': ['code', 'displayable', 'queryable', 'readable', 'require', 'stage', 'writable'],
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': 'code'
            },
            'displayable': {
                'type': 'boolean',
                'description': '列表可展示',
                'example': false
            },
            'queryable': {
                'type': 'boolean',
                'description': '查询条件',
                'example': false
            },
            'readable': {
                'type': 'boolean',
                'description': '可读',
                'example': false
            },
            'require': {
                'type': 'boolean',
                'description': '必填',
                'example': false
            },
            'stage': {
                'type': 'string',
                'description': '阶段'
            },
            'writable': {
                'type': 'boolean',
                'description': '可写',
                'example': false
            }
        }
    },
    'FormDefinitionAggregation': {
        'title': 'FormDefinitionAggregation',
        'type': 'object',
        'properties': {
            'appLayout': {
                'type': 'object',
                'description': 'web布局'
            },
            'id': {
                'type': 'string',
                'description': 'id'
            },
            'items': {
                'type': 'array',
                'description': '项',
                'items': {
                    '$ref': '#/components/schemas/DefineItem'
                }
            },
            'layout': {
                'type': 'object',
                'description': 'web布局'
            },
            'restricts': {
                'type': 'array',
                'description': '限制',
                'items': {
                    '$ref': '#/components/schemas/DefineRestrict'
                }
            }
        }
    },
    'InstanceAggregation': {
        'title': 'InstanceAggregation',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': 'code'
            },
            'id': {
                'type': 'string',
                'description': 'id'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'records': {
                'type': 'array',
                'description': '流程记录',
                'items': {
                    '$ref': '#/components/schemas/InstanceOperationRecord'
                }
            },
            'svg': {
                'description': '流程svg',
                '$ref': '#/components/schemas/DefinitionSvgAggregation'
            },
            'tasks': {
                'type': 'array',
                'description': '任务列表',
                'items': {
                    '$ref': '#/components/schemas/Task'
                }
            }
        }
    },
    'InstanceAuthModel': {
        'title': 'InstanceAuthModel',
        'type': 'object',
        'properties': {
            'createFlag': {
                'type': 'boolean',
                'description': '新增',
                'example': false
            },
            'deleteFlag': {
                'type': 'boolean',
                'description': '删除',
                'example': false
            },
            'editFlag': {
                'type': 'boolean',
                'description': '编辑',
                'example': false
            },
            'exportFlag': {
                'type': 'boolean',
                'description': '导出',
                'example': false
            },
            'importFlag': {
                'type': 'boolean',
                'description': '导入',
                'example': false
            }
        }
    },
    'InstanceBusinessCommonCreateModel': {
        'title': 'InstanceBusinessCommonCreateModel',
        'type': 'object',
        'properties': {
            'data': {
                'type': 'object',
                'description': '数据'
            },
            'definitionId': {
                'type': 'integer',
                'description': '流程id',
                'format': 'int64'
            },
            'instanceId': {
                'type': 'string',
                'description': '暂存实例id'
            }
        }
    },
    'InstanceBusinessCommonDetailModel': {
        'title': 'InstanceBusinessCommonDetailModel',
        'type': 'object',
        'properties': {
            'category': {
                'description': '类别',
                '$ref': '#/components/schemas/CategoryModel'
            },
            'code': {
                'type': 'string',
                'description': '实例code'
            },
            'createdDateTime': {
                'type': 'string',
                'description': '创建时间',
                'format': 'date-time'
            },
            'currentActivityId': {
                'type': 'string',
                'description': '当前节点key'
            },
            'currentActivityName': {
                'type': 'string',
                'description': '当前节点名'
            },
            'currentOperation': {
                'description': '当前操作节点信息',
                '$ref': '#/components/schemas/InstanceOperationDetail'
            },
            'definition': {
                'description': '流程数据',
                '$ref': '#/components/schemas/DefinitionModel'
            },
            'durations': {
                'type': 'integer',
                'description': '持续时间',
                'format': 'int64'
            },
            'endDateTime': {
                'type': 'string',
                'description': '结束时间',
                'format': 'date-time'
            },
            'formData': {
                'description': '表单数据',
                '$ref': '#/components/schemas/FormDataDetailAggregation'
            },
            'formDefinition': {
                'description': '表单定义',
                '$ref': '#/components/schemas/FormDefinitionAggregation'
            },
            'initiateDepartment': {
                'description': '发起部门',
                '$ref': '#/components/schemas/DepartmentAggregation'
            },
            'initiator': {
                'description': '发起人',
                '$ref': '#/components/schemas/UserAggregation'
            },
            'instance': {
                'description': '实例数据',
                '$ref': '#/components/schemas/InstanceAggregation'
            },
            'instanceAuth': {
                'description': '权限',
                '$ref': '#/components/schemas/InstanceAuthModel'
            },
            'instanceId': {
                'type': 'string',
                'description': '实例id'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'startDateTime': {
                'type': 'string',
                'description': '开始时间',
                'format': 'date-time'
            },
            'stashFlag': {
                'type': 'boolean',
                'description': '暂存标志',
                'example': false
            },
            'taskActivityId': {
                'type': 'string',
                'description': '任务节点id'
            },
            'updatedDateTime': {
                'type': 'string',
                'description': '更新时间',
                'format': 'date-time'
            }
        }
    },
    'InstanceBusinessCommonListModel': {
        'title': 'InstanceBusinessCommonListModel',
        'type': 'object',
        'properties': {
            'category': {
                'description': '类别',
                '$ref': '#/components/schemas/CategoryModel'
            },
            'code': {
                'type': 'string',
                'description': '实例code'
            },
            'createdDateTime': {
                'type': 'string',
                'description': '创建时间',
                'format': 'date-time'
            },
            'currentActivityId': {
                'type': 'string',
                'description': '当前节点key'
            },
            'currentActivityName': {
                'type': 'string',
                'description': '当前节点名'
            },
            'definition': {
                'description': '流程数据',
                '$ref': '#/components/schemas/DefinitionModel'
            },
            'durations': {
                'type': 'integer',
                'description': '持续时间',
                'format': 'int64'
            },
            'endDateTime': {
                'type': 'string',
                'description': '结束时间',
                'format': 'date-time'
            },
            'formData': {
                'description': '表单数据',
                '$ref': '#/components/schemas/FormDataAggregation'
            },
            'initiateDepartment': {
                'description': '发起部门',
                '$ref': '#/components/schemas/DepartmentAggregation'
            },
            'initiator': {
                'description': '发起人',
                '$ref': '#/components/schemas/UserAggregation'
            },
            'instanceId': {
                'type': 'string',
                'description': '实例id'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'startDateTime': {
                'type': 'string',
                'description': '开始时间',
                'format': 'date-time'
            },
            'stashFlag': {
                'type': 'boolean',
                'description': '暂存标志',
                'example': false
            },
            'updatedDateTime': {
                'type': 'string',
                'description': '更新时间',
                'format': 'date-time'
            }
        }
    },
    'InstanceBusinessCommonPageModel': {
        'title': 'InstanceBusinessCommonPageModel',
        'type': 'object',
        'properties': {
            'category': {
                'description': '类别',
                '$ref': '#/components/schemas/CategoryModel'
            },
            'code': {
                'type': 'string',
                'description': '实例code'
            },
            'createdDateTime': {
                'type': 'string',
                'description': '创建时间',
                'format': 'date-time'
            },
            'currentActivityId': {
                'type': 'string',
                'description': '当前节点key'
            },
            'currentActivityName': {
                'type': 'string',
                'description': '当前节点名'
            },
            'definition': {
                'description': '流程数据',
                '$ref': '#/components/schemas/DefinitionModel'
            },
            'durations': {
                'type': 'integer',
                'description': '持续时间',
                'format': 'int64'
            },
            'endDateTime': {
                'type': 'string',
                'description': '结束时间',
                'format': 'date-time'
            },
            'formData': {
                'description': '表单数据',
                '$ref': '#/components/schemas/FormDataAggregation'
            },
            'initiateDepartment': {
                'description': '发起部门',
                '$ref': '#/components/schemas/DepartmentAggregation'
            },
            'initiator': {
                'description': '发起人',
                '$ref': '#/components/schemas/UserAggregation'
            },
            'instanceId': {
                'type': 'string',
                'description': '实例id'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'startDateTime': {
                'type': 'string',
                'description': '开始时间',
                'format': 'date-time'
            },
            'stashFlag': {
                'type': 'boolean',
                'description': '暂存标志',
                'example': false
            },
            'updatedDateTime': {
                'type': 'string',
                'description': '更新时间',
                'format': 'date-time'
            }
        }
    },
    'InstanceCancelCommonModel': {
        'title': 'InstanceCancelCommonModel',
        'required': ['remark'],
        'type': 'object',
        'properties': {
            'remark': {
                'maxLength': 256,
                'minLength': 0,
                'type': 'string',
                'description': '备注'
            }
        }
    },
    'InstanceModel': {
        'title': 'InstanceModel',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': '实例code'
            },
            'createdDateTime': {
                'type': 'string',
                'description': '创建时间',
                'format': 'date-time'
            },
            'currentActivityId': {
                'type': 'string',
                'description': '当前节点key'
            },
            'currentActivityName': {
                'type': 'string',
                'description': '当前节点名'
            },
            'durations': {
                'type': 'integer',
                'description': '持续时间',
                'format': 'int64'
            },
            'endDateTime': {
                'type': 'string',
                'description': '结束时间',
                'format': 'date-time'
            },
            'instanceId': {
                'type': 'string',
                'description': '实例id'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'startDateTime': {
                'type': 'string',
                'description': '开始时间',
                'format': 'date-time'
            },
            'stashFlag': {
                'type': 'boolean',
                'description': '暂存标志',
                'example': false
            },
            'updatedDateTime': {
                'type': 'string',
                'description': '更新时间',
                'format': 'date-time'
            }
        }
    },
    'InstanceOperationDetail': {
        'title': 'InstanceOperationDetail',
        'type': 'object',
        'properties': {
            'activityId': {
                'type': 'string',
                'description': '任务id'
            },
            'addSignFlag': {
                'type': 'boolean',
                'description': '加签',
                'example': false
            },
            'approveFlag': {
                'type': 'boolean',
                'description': '同意',
                'example': false
            },
            'circulatedFlag': {
                'type': 'boolean',
                'description': '传阅',
                'example': false
            },
            'endInstanceFlag': {
                'type': 'boolean',
                'description': '结束流程',
                'example': false
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'rejectFlag': {
                'type': 'boolean',
                'description': '拒绝',
                'example': false
            },
            'tasks': {
                'type': 'array',
                'description': '任务',
                'items': {
                    '$ref': '#/components/schemas/TaskInfoDetail'
                }
            },
            'turnFlag': {
                'type': 'boolean',
                'description': '转办',
                'example': false
            },
            'withdrawFlag': {
                'type': 'boolean',
                'description': '撤回',
                'example': false
            }
        }
    },
    'InstanceOperationRecord': {
        'title': 'InstanceOperationRecord',
        'type': 'object',
        'properties': {
            'currentActivityId': {
                'type': 'string',
                'description': '当前节点key'
            },
            'currentActivityName': {
                'type': 'string',
                'description': '当前节点名'
            },
            'exceptionFlag': {
                'type': 'boolean',
                'description': '异常',
                'example': false
            },
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            }
        }
    },
    'PageBody«CategoryBusinessPageModel»': {
        'title': 'PageBody«CategoryBusinessPageModel»',
        'type': 'object',
        'properties': {
            'data': {
                'type': 'array',
                'description': '数据',
                'items': {
                    '$ref': '#/components/schemas/CategoryBusinessPageModel'
                }
            },
            'pages': {
                'type': 'integer',
                'description': '总页数',
                'format': 'int32'
            },
            'size': {
                'type': 'integer',
                'description': '页大小',
                'format': 'int32'
            },
            'total': {
                'type': 'integer',
                'description': '总数',
                'format': 'int64'
            }
        }
    },
    'PageBody«DefinitionBusinessPageModel»': {
        'title': 'PageBody«DefinitionBusinessPageModel»',
        'type': 'object',
        'properties': {
            'data': {
                'type': 'array',
                'description': '数据',
                'items': {
                    '$ref': '#/components/schemas/DefinitionBusinessPageModel'
                }
            },
            'pages': {
                'type': 'integer',
                'description': '总页数',
                'format': 'int32'
            },
            'size': {
                'type': 'integer',
                'description': '页大小',
                'format': 'int32'
            },
            'total': {
                'type': 'integer',
                'description': '总数',
                'format': 'int64'
            }
        }
    },
    'PageBody«InstanceBusinessCommonPageModel»': {
        'title': 'PageBody«InstanceBusinessCommonPageModel»',
        'type': 'object',
        'properties': {
            'data': {
                'type': 'array',
                'description': '数据',
                'items': {
                    '$ref': '#/components/schemas/InstanceBusinessCommonPageModel'
                }
            },
            'pages': {
                'type': 'integer',
                'description': '总页数',
                'format': 'int32'
            },
            'size': {
                'type': 'integer',
                'description': '页大小',
                'format': 'int32'
            },
            'total': {
                'type': 'integer',
                'description': '总数',
                'format': 'int64'
            }
        }
    },
    'PageBody«TaskBusinessCommonPageModel»': {
        'title': 'PageBody«TaskBusinessCommonPageModel»',
        'type': 'object',
        'properties': {
            'data': {
                'type': 'array',
                'description': '数据',
                'items': {
                    '$ref': '#/components/schemas/TaskBusinessCommonPageModel'
                }
            },
            'pages': {
                'type': 'integer',
                'description': '总页数',
                'format': 'int32'
            },
            'size': {
                'type': 'integer',
                'description': '页大小',
                'format': 'int32'
            },
            'total': {
                'type': 'integer',
                'description': '总数',
                'format': 'int64'
            }
        }
    },
    'PostAggregation': {
        'title': 'PostAggregation',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': 'code'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            }
        }
    },
    'SearchItem': {
        'title': 'SearchItem',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': 'code'
            },
            'values': {
                'type': 'object',
                'description': '值'
            }
        }
    },
    'Task': {
        'title': 'Task',
        'type': 'object',
        'properties': {
            'activityId': {
                'type': 'string',
                'description': '定义id'
            },
            'assignee': {
                'description': '审批人',
                '$ref': '#/components/schemas/TaskAssignee'
            },
            'completedFlag': {
                'type': 'boolean',
                'description': '是否完成',
                'example': false
            },
            'endTime': {
                'type': 'string',
                'description': '结束时间',
                'format': 'date-time'
            },
            'id': {
                'type': 'string',
                'description': 'id'
            },
            'name': {
                'type': 'string',
                'description': '名称'
            },
            'operationRecordId': {
                'type': 'integer',
                'description': '实例记录id',
                'format': 'int64'
            },
            'remark': {
                'type': 'string',
                'description': '备注'
            },
            'startDateTime': {
                'type': 'string',
                'description': '开始时间',
                'format': 'date-time'
            },
            'taskState': {
                'type': 'string',
                'description': '任务状态'
            },
            'taskType': {
                'type': 'string',
                'description': '任务类型'
            },
            'turnTaskId': {
                'type': 'string',
                'description': '被转办任务id'
            }
        }
    },
    'TaskAddSignBusinessCommonModel': {
        'title': 'TaskAddSignBusinessCommonModel',
        'required': ['assignees'],
        'type': 'object',
        'properties': {
            'assignees': {
                'uniqueItems': true,
                'type': 'array',
                'description': '审批人',
                'items': {
                    'type': 'integer',
                    'format': 'int64'
                }
            }
        }
    },
    'TaskApproveBusinessCommonModel': {
        'title': 'TaskApproveBusinessCommonModel',
        'required': ['data'],
        'type': 'object',
        'properties': {
            'data': {
                'type': 'object',
                'description': '变量'
            },
            'remark': {
                'type': 'string',
                'description': '备注'
            }
        }
    },
    'TaskAssignee': {
        'title': 'TaskAssignee',
        'type': 'object',
        'properties': {
            'clazz': {
                'type': 'string'
            },
            'id': {
                'type': 'integer',
                'description': '用户id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '姓名'
            }
        }
    },
    'TaskAssigneeBusinessManModel': {
        'title': 'TaskAssigneeBusinessManModel',
        'required': ['activityId'],
        'type': 'object',
        'properties': {
            'activityId': {
                'type': 'string',
                'description': '任务id'
            },
            'formCodes': {
                'type': 'array',
                'description': '表单code',
                'items': {
                    'type': 'string'
                }
            },
            'permission': {
                'description': '表单code',
                '$ref': '#/components/schemas/TaskPermissionManModel'
            },
            'posts': {
                'type': 'array',
                'description': '岗位',
                'items': {
                    '$ref': '#/components/schemas/AssigneePost'
                }
            },
            'users': {
                'type': 'array',
                'description': '用户列表',
                'items': {
                    'type': 'integer',
                    'format': 'int64'
                }
            }
        }
    },
    'TaskAssigneeDetailModel': {
        'title': 'TaskAssigneeDetailModel',
        'type': 'object',
        'properties': {
            'activityId': {
                'type': 'string',
                'description': '任务id'
            },
            'duties': {
                'type': 'array',
                'description': '职责',
                'items': {
                    '$ref': '#/components/schemas/AssigneePostDetail'
                }
            },
            'formCodes': {
                'type': 'array',
                'description': '表单code',
                'items': {
                    'type': 'string'
                }
            },
            'permission': {
                'description': '操作权限',
                '$ref': '#/components/schemas/TaskPermissionModel'
            },
            'users': {
                'type': 'array',
                'description': '用户列表',
                'items': {
                    '$ref': '#/components/schemas/UserWithDeptAggregation'
                }
            }
        }
    },
    'TaskBusinessCommonDetailModel': {
        'title': 'TaskBusinessCommonDetailModel',
        'type': 'object',
        'properties': {
            'endDateTime': {
                'type': 'string',
                'description': '任务结束时间',
                'format': 'date-time'
            },
            'formData': {
                'description': '表单数据',
                '$ref': '#/components/schemas/FormDataAggregationWithUser'
            },
            'id': {
                'type': 'string',
                'description': 'id'
            },
            'instance': {
                'description': '实例信息',
                '$ref': '#/components/schemas/InstanceAggregation'
            },
            'name': {
                'type': 'string',
                'description': '任务节点名称'
            },
            'priority': {
                'type': 'integer',
                'description': '优先级',
                'format': 'int32'
            },
            'startDateTime': {
                'type': 'string',
                'description': '任务开始时间',
                'format': 'date-time'
            },
            'viewer': {
                'description': '数据信息',
                '$ref': '#/components/schemas/ViewerAggregation'
            }
        }
    },
    'TaskBusinessCommonPageModel': {
        'title': 'TaskBusinessCommonPageModel',
        'type': 'object',
        'properties': {
            'category': {
                'description': '类别信息',
                '$ref': '#/components/schemas/CategoryModel'
            },
            'endDateTime': {
                'type': 'string',
                'description': '任务结束时间',
                'format': 'date-time'
            },
            'formData': {
                'description': '表单数据',
                '$ref': '#/components/schemas/FormDataAggregation'
            },
            'id': {
                'type': 'string',
                'description': 'id'
            },
            'initiateDepartment': {
                'description': '流程发起部门',
                '$ref': '#/components/schemas/DepartmentAggregation'
            },
            'initiator': {
                'description': '流程发起人',
                '$ref': '#/components/schemas/UserWithDeptAggregation'
            },
            'instance': {
                'description': '实例信息',
                '$ref': '#/components/schemas/InstanceModel'
            },
            'name': {
                'type': 'string',
                'description': '任务节点名称'
            },
            'priority': {
                'type': 'integer',
                'description': '优先级',
                'format': 'int32'
            },
            'startDateTime': {
                'type': 'string',
                'description': '任务开始时间',
                'format': 'date-time'
            }
        }
    },
    'TaskBusinessCommonQuerySearch': {
        'title': 'TaskBusinessCommonQuerySearch',
        'type': 'object',
        'properties': {
            'definitionId': {
                'type': 'integer',
                'description': '流程定义id',
                'format': 'int64'
            },
            'items': {
                'type': 'array',
                'description': '表单条件',
                'items': {
                    '$ref': '#/components/schemas/SearchItem'
                }
            },
            'keyword': {
                'type': 'string',
                'description': '关键字'
            },
            'lastTaskId': {
                'type': 'string',
                'description': '最后任务id'
            },
            'search': {
                'description': '条件',
                '$ref': '#/components/schemas/TaskQuerySearchModel'
            }
        }
    },
    'TaskCirculatedBusinessCommonModel': {
        'title': 'TaskCirculatedBusinessCommonModel',
        'required': ['users'],
        'type': 'object',
        'properties': {
            'users': {
                'uniqueItems': true,
                'type': 'array',
                'description': '传阅人',
                'items': {
                    'type': 'integer',
                    'format': 'int64'
                }
            }
        }
    },
    'TaskEndInstanceBusinessCommonModel': {
        'title': 'TaskEndInstanceBusinessCommonModel',
        'required': ['remark'],
        'type': 'object',
        'properties': {
            'remark': {
                'maxLength': 256,
                'minLength': 0,
                'type': 'string',
                'description': '备注'
            }
        }
    },
    'TaskInfoDetail': {
        'title': 'TaskInfoDetail',
        'type': 'object',
        'properties': {
            'assignee': {
                'description': '审批人',
                '$ref': '#/components/schemas/UserAggregation'
            },
            'completedDateTime': {
                'type': 'string',
                'description': '完成时间',
                'format': 'date-time'
            },
            'state': {
                'description': '状态',
                '$ref': '#/components/schemas/EnumWrapper«string»'
            }
        }
    },
    'TaskOverruleBusinessCommonModel': {
        'title': 'TaskOverruleBusinessCommonModel',
        'required': ['activityId', 'remark'],
        'type': 'object',
        'properties': {
            'activityId': {
                'type': 'string',
                'description': '任务id'
            },
            'remark': {
                'maxLength': 256,
                'minLength': 0,
                'type': 'string',
                'description': '备注'
            }
        }
    },
    'TaskPermissionManModel': {
        'title': 'TaskPermissionManModel',
        'required': ['addSignFlag', 'circulatedFlag', 'endInstanceFlag', 'turnFlag', 'withdrawFlag'],
        'type': 'object',
        'properties': {
            'addSignFlag': {
                'type': 'boolean',
                'description': '加签',
                'example': false
            },
            'circulatedFlag': {
                'type': 'boolean',
                'description': '传阅',
                'example': false
            },
            'endInstanceFlag': {
                'type': 'boolean',
                'description': '结束流程',
                'example': false
            },
            'turnFlag': {
                'type': 'boolean',
                'description': '转办',
                'example': false
            },
            'withdrawFlag': {
                'type': 'boolean',
                'description': '撤回',
                'example': false
            }
        }
    },
    'TaskPermissionModel': {
        'title': 'TaskPermissionModel',
        'type': 'object',
        'properties': {
            'addSignFlag': {
                'type': 'boolean',
                'description': '加签',
                'example': false
            },
            'circulatedFlag': {
                'type': 'boolean',
                'description': '传阅',
                'example': false
            },
            'endInstanceFlag': {
                'type': 'boolean',
                'description': '结束流程',
                'example': false
            },
            'turnFlag': {
                'type': 'boolean',
                'description': '转办',
                'example': false
            },
            'withdrawFlag': {
                'type': 'boolean',
                'description': '撤回',
                'example': false
            }
        }
    },
    'TaskQuerySearchModel': {
        'title': 'TaskQuerySearchModel',
        'type': 'object',
        'properties': {
            'compare': {
                'type': 'string',
                'description': '比较符[QCompare]',
                'enum': ['between/** between */', 'eq/** eq */', 'ge/** ge */', 'gt/** gt */', 'in/** in */', 'le/** le */', 'like/** like */', 'likel/** likel */', 'likelr/** likelr */', 'liker/** liker */', 'lt/** lt */', 'ne/** ne */', 'nin/** nin */', 'nn/** nn */', 'nu/** nu */']
            },
            'logic': {
                'type': 'string',
                'description': '逻辑符[QLogic]',
                'enum': ['and/** and */', 'not/** not */', 'or/** or */']
            },
            'logics': {
                'type': 'array',
                'description': '逻辑参数',
                'items': {
                    '$ref': '#/components/schemas/TaskQuerySearchModel'
                }
            },
            'name': {
                'type': 'string',
                'description': '名称[TaskSearchAttribute]',
                'enum': ['code/** 单据号 */', 'definitionId/** 流程定义id */', 'id/** 任务id */', 'initiateDateTime/** 流程发起时间 */', 'initiateDepartmentId/** 流程发起部门id */', 'initiatorId/** 流程发起人id */', 'instanceName/** 流程名 */', 'processName/** 流程模板名 */', 'type/** 状态UPCOMING:待办, DONE:已办, PENDING:待阅, READ:已阅 */']
            },
            'param': {
                'type': 'object',
                'description': '参数'
            }
        }
    },
    'TaskRejectBusinessCommonModel': {
        'title': 'TaskRejectBusinessCommonModel',
        'required': ['remark'],
        'type': 'object',
        'properties': {
            'remark': {
                'type': 'string',
                'description': '备注'
            }
        }
    },
    'TaskTurnBusinessCommonModel': {
        'title': 'TaskTurnBusinessCommonModel',
        'required': ['assignee', 'remark'],
        'type': 'object',
        'properties': {
            'assignee': {
                'type': 'integer',
                'description': '审批人id',
                'format': 'int64'
            },
            'remark': {
                'maxLength': 256,
                'minLength': 0,
                'type': 'string',
                'description': '备注'
            }
        }
    },
    'TaskWithdrawBusinessCommonModel': {
        'title': 'TaskWithdrawBusinessCommonModel',
        'required': ['remark'],
        'type': 'object',
        'properties': {
            'remark': {
                'maxLength': 256,
                'minLength': 0,
                'type': 'string',
                'description': '备注'
            }
        }
    },
    'UserAggregation': {
        'title': 'UserAggregation',
        'type': 'object',
        'properties': {
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '姓名'
            }
        }
    },
    'UserWithDeptAggregation': {
        'title': 'UserWithDeptAggregation',
        'type': 'object',
        'properties': {
            'department': {
                'description': '部门',
                '$ref': '#/components/schemas/DepartmentAggregation'
            },
            'id': {
                'type': 'integer',
                'description': 'id',
                'format': 'int64'
            },
            'name': {
                'type': 'string',
                'description': '姓名'
            }
        }
    },
    'ViewerAggregation': {
        'title': 'ViewerAggregation',
        'type': 'object',
        'properties': {
            'code': {
                'type': 'string',
                'description': 'viewer编码'
            },
            'data': {
                'type': 'object',
                'description': '数据'
            },
            'id': {
                'type': 'string',
                'description': 'id'
            },
            'layout': {
                'type': 'string',
                'description': '布局'
            },
            'restrict': {
                'type': 'string',
                'description': '限定'
            }
        }
    },
    'ViewerTemplateBusinessManModel': {
        'title': 'ViewerTemplateBusinessManModel',
        'required': ['items', 'layout'],
        'type': 'object',
        'properties': {
            'items': {
                'uniqueItems': true,
                'type': 'array',
                'description': '数据项',
                'items': {
                    'type': 'string'
                }
            },
            'layout': {
                'type': 'string',
                'description': '布局'
            },
            'restrict': {
                'type': 'string',
                'description': '限定'
            }
        }
    },
    'ViewerTemplatesBusinessManModel': {
        'title': 'ViewerTemplatesBusinessManModel',
        'required': ['serviceName', 'templates', 'uri'],
        'type': 'object',
        'properties': {
            'serviceName': {
                'type': 'string',
                'description': '服务名'
            },
            'templates': {
                'type': 'array',
                'description': '模板',
                'items': {
                    '$ref': '#/components/schemas/ViewerTemplateBusinessManModel'
                }
            },
            'uri': {
                'type': 'string',
                'description': '路径'
            }
        }
    }
};

const schemas: Map<string, Schema> = new Map<string, Schema>();
for (const key in schemaJson) {
    const name = schemaNameHandler(key);
    // @ts-ignore
    if (!schemas.has(name)) {
        schemas.set(name, new Schema(name));
    }
    // @ts-ignore
    schemas.get(name)!.init(schemaJson[key] as any, schemas);
}
const text: string[] = [];
// for (let value of schemas.values()) {
//     text.push(`| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 |`);
//     text.push(`| ------ | -------- | ----- | -------- | -------- |`);
//     for (let markdown of value.markdown([], 0)) {
//         text.push(`|${'&nbsp;&nbsp;'.repeat(markdown.level)}${markdown.name}|  ${markdown.description} |  ${markdown.position} |  ${markdown.required} |  ${markdown.type} |`);
//     }
//     text.push('\n');
// }
// console.log(text.join('\n'));
for (let value of schemas.values()) {
    console.log(value.title);
    // console.log(JSON.stringify(value.getSample([]), null, 2));
    console.log(prettier.format(value.getInterfaceDefinitionStatement(), {
        parser: 'typescript'
    }));
    console.log(prettier.format(value.getClassDefinitionStatement(), {
        parser: 'typescript'
    }));
}
